#include "Polimorfismo.h"

//-----------------------------------
//-- Class A
//-----------------------------------
bool CClassA::Init ()
{
  m_bIsOk = true;

  if (!m_bIsOk)
  {
    Release();
  }

  return m_bIsOk;
}

void CClassA::Done ()
{
  if (IsOk())
  {
    Release();
    m_bIsOk = false;
  }
}

void CClassA::Release ()
{
  // Free memory
}


//-----------------------------------
//-- Class B
//-----------------------------------
bool CClassB::Init ()
{
  // Init de la clase padre
  bool bIsOk = Inherited::Init();

  if (!bIsOk)
  {
    // Llamamos a Done() en vez de Release() ya que tenemos que liberar la memoria creada por la clase padre.
    Done();
  }

  return bIsOk;
}

void CClassB::Done ()
{
  // Done() de la clase padre
  Inherited::Done();

  if (IsOk())
  {
    Release();
  }
}

void CClassB::Release ()
{
  // Liberar memoria
}

void CClassB::Update (float dt, float t)
{
  // ...
}